今天來介紹 CNN + LSTM 和 ConvLSTM 之間的差異,
文章有點長,謝謝耐心觀看
兩種都是在深度學習中常見的網路架構,也都可以處理時空序列的資料!
在寫後面的ConvLSTM時,突然覺得應該先來認識LSTM,
接著再一路延伸,不然會不太清楚為何需要找這樣的資料。
大致上了解模型的架構和原理,就可以來學習怎麼應用!
(模型的公式就交給數學系、教授,和有興趣的人去研究了 :) )
這是LSTM的模型架構圖
LSTM 模型的資料流程圖(藉由這張圖會比較清楚資料怎麼在模型內運作)
通常情況,一個LSTM單元由細胞單元(cell)、輸入門(input gate)、輸出門(output gate)、遺忘門(forget gate)組成。
Update Gate/input gate:(輸入門): 決定要把多少單位的資訊加到當前狀態。
Output Gate(輸出門): 決定當前的cell的哪一部分要輸出出去。
Forget Gate(遺忘門): 決定你應該記住多少過去的資訊。
這篇文章用圖來介紹 LSTM,非常直觀!
LSTM 非常擅長處理時間序列,也能處理空間資訊。但對於三維圖形來講,因為有著豐富的空間資訊,並且每一個點和周圍是有很強的相關性的,這就帶來了冗餘,傳統的 LSTM 很難刻畫這種空間特徵。
為了克服LSTM在處理三維資訊中的不足,ConvLSTM 將 LSTM 中的2D的輸入轉換成了3D的tensor,最後兩個維度是空間維度(行和列)。
對於每一時刻t的數據,ConvLSTM 將 LSTM 中的一部分連接操作,替換成了卷積操作,也就是通過當前輸入和局部鄰居的過去狀態來進行預測。
如下圖
ConvLSTM 的原始文獻在這,感興趣的朋友可以點進去了解看看。
全稱是 Convolutional LSTM Network,也是基於LSTM(Long Short-Term Memory, 長短期記憶)的架構。
此架構ConvLSTM是用fully connected LSTM (FC-LSTM) 的延伸。
ConvLSTM 一開始是用天氣預測來作為應用,
後來有許多研究使用ConLSTM也是進行氣象分析相關的實驗。
不同於FC-LSTM的 input / output / state 是 1D的向量(vector),
(每個時間步的輸入、輸出和隱狀態都是一維的)
ConvLSTM 有 3D的張量(Tensor),
(具體來說是(timestamps, row, column),也就是每個時間步的資料具有空間結構。)
而實際上在實作的時候是 5D(batchsize, timestamps, channel size, row, column)。
(因為在深度學習中,通常會使用批量處理(batch processing),
並且資料可能具有多個通道(ex.彩色圖像的 RGB 通道數是3,代表著255,255,255)。)
這是ConvLSTM的模型架構圖
這種架構結合了卷積神經網絡(CNN)和長短期記憶網絡(LSTM),適合處理時空資料,ex.影片或序列預測任務。
綜合以上,
ConvLSTM 就是在 LSTM 的 各個門之間加入了 卷積,讓模型可以"同時" 捕捉 空間 和 時間 的特徵。
以下列舉幾個適用的範例,
CNN+LSTM 是將卷積層和 LSTM 層堆疊在一起的架構。
CNN 用於提取空間特徵 -> 這些特徵被傳遞給 LSTM 來捕捉 時間依賴性。
更適合用於先提取空間特徵再捕捉時間依賴性的任務。
以下也列舉幾個適用的範例,
從曾經的範例觀察來看,這個題目應該比較適合用CNN+LSTM,但我們還是兩個都試試看~
認識完畢,大家給自己一個讚,這東西理解起來很花時間,明天來銜接回前幾天的內容!
參考文章&資料來源:
每日記錄:
原本模型那邊想用LateX語法寫出公式,研究了好久還是沒用出來
加權指數:21295,上漲794點,昨天加碼的人是這幾天的最大贏家。
今天漲停應該有一兩百檔股票。
市場一半的人看多,一半的人看空,巴菲特阿公手上滿滿現金,後面的結果拭目以待。